package com.xizi.collection;

/**
 * @author xizizzz
 * @description: TODO
 * @date 2021-6-30下午 01:58
 */
public class Father {
    static int a;
    int b;

    public void father1() {
    }

    public static void father2() {
    }

    //内部类
    class Son1 {
        // 1. 成员内部类可访问外部类所有的方法和成员变量。
        // 2. 不能有静态的方法和成员变量。
        public void test1() {
            int c = b;
            father1();
        }
    }

    // 静态内部类
    static class Son2 {
        //1. 只能访问外部类的静态成员变量与静态方法。
        //2. 静态内部类的非静态成员可访问外部类的静态变量，而不可访问外部类的非静态变量。
        public void test2() {
            int c = a;
            father2();
        }
    }

    //匿名内部类
    Runnable runnable = new Runnable() {
        @Override
        public void run() {
            System.out.println("匿名内部类");
        }
    };

}
